package com.lecyon.farm.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author YaoZheng
 * @since 2020-04-02
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel("系统用户")
public class JsSysUser extends Model<JsSysUser> {

    @TableId(value = "user_code", type = IdType.NONE)
    @ApiModelProperty(value = "用户编码")
    private String userCode;

    @ApiModelProperty(value = "登录账号")
    private String loginCode;

    @ApiModelProperty(value = "用户昵称")
    private String userName;

    @ApiModelProperty(value = "登录密码")
    private String password;

    @ApiModelProperty(value = "电子邮箱")
    private String email;

    @ApiModelProperty(value = "手机号码")
    private String mobile;

    @ApiModelProperty(value = "办公电话")
    private String phone;

    @ApiModelProperty(value = "用户性别")
    private String sex;

    @ApiModelProperty(value = "头像路径")
    private String avatar;

    @ApiModelProperty(value = "个性签名")
    private String sign;

    @ApiModelProperty(value = "绑定的微信号")
    private String wxOpenid;

    @ApiModelProperty(value = "绑定的手机串号")
    private String mobileImei;

    @ApiModelProperty(value = "用户类型")
    private String userType;

    @ApiModelProperty(value = "用户类型引用编号")
    private String refCode;

    @ApiModelProperty(value = "用户类型引用姓名")
    private String refName;

    @ApiModelProperty(value = "管理员类型（0非管理员 1系统管理员  2二级管理员）")
    private String mgrType;

    @ApiModelProperty(value = "密码安全级别（0初始 1很弱 2弱 3安全 4很安全）")
    private BigDecimal pwdSecurityLevel;

    @ApiModelProperty(value = "密码最后更新时间")
    private LocalDateTime pwdUpdateDate;

    @ApiModelProperty(value = "密码修改记录")
    private String pwdUpdateRecord;

    @ApiModelProperty(value = "密保问题")
    private String pwdQuestion;

    @ApiModelProperty(value = "密保问题答案")
    private String pwdQuestionAnswer;

    @ApiModelProperty(value = "密保问题2")
    @TableField(value = "pwd_question_2")
    private String pwdQuestion2;

    @ApiModelProperty(value = "密保问题答案2")
    @TableField(value = "pwd_question_answer_2")
    private String pwdQuestionAnswer2;

    @ApiModelProperty(value = "密保问题3")
    @TableField(value = "pwd_question_3")
    private String pwdQuestion3;

    @ApiModelProperty(value = "密保问题答案3")
    @TableField(value = "pwd_question_answer_3")
    private String pwdQuestionAnswer3;

    @ApiModelProperty(value = "密码问题修改时间")
    private LocalDateTime pwdQuestUpdateDate;

    @ApiModelProperty(value = "最后登陆IP")
    private String lastLoginIp;

    @ApiModelProperty(value = "最后登陆时间")
    private LocalDateTime lastLoginDate;

    @ApiModelProperty(value = "冻结时间")
    private LocalDateTime freezeDate;

    @ApiModelProperty(value = "冻结原因")
    private String freezeCause;

    @ApiModelProperty(value = "用户权重（降序）")
    private BigDecimal userWeight;

    @ApiModelProperty(value = "状态（0正常 1删除 2停用 3冻结）")
    private String status;

    @ApiModelProperty(value = "创建者")
    private String createBy;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createDate;

    @ApiModelProperty(value = "更新者")
    private String updateBy;

    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updateDate;

    @ApiModelProperty(value = "备注信息")
    private String remarks;

    @ApiModelProperty(value = "租户代码")
    private String corpCode;

    @ApiModelProperty(value = "租户名称")
    private String corpName;

    @ApiModelProperty(value = "扩展 String 1")
    private String extendS1;

    @ApiModelProperty(value = "扩展 String 2")
    private String extendS2;

    @ApiModelProperty(value = "扩展 String 3")
    private String extendS3;

    @ApiModelProperty(value = "扩展 String 4")
    private String extendS4;

    @ApiModelProperty(value = "扩展 String 5")
    private String extendS5;

    @ApiModelProperty(value = "扩展 String 6")
    private String extendS6;

    @ApiModelProperty(value = "扩展 String 7")
    private String extendS7;

    @ApiModelProperty(value = "扩展 String 8")
    private String extendS8;

    @ApiModelProperty(value = "扩展 Integer 1")
    private BigDecimal extendI1;

    @ApiModelProperty(value = "扩展 Integer 2")
    private BigDecimal extendI2;

    @ApiModelProperty(value = "扩展 Integer 3")
    private BigDecimal extendI3;

    @ApiModelProperty(value = "扩展 Integer 4")
    private BigDecimal extendI4;

    @ApiModelProperty(value = "扩展 Float 1")
    private BigDecimal extendF1;

    @ApiModelProperty(value = "扩展 Float 2")
    private BigDecimal extendF2;

    @ApiModelProperty(value = "扩展 Float 3")
    private BigDecimal extendF3;

    @ApiModelProperty(value = "扩展 Float 4")
    private BigDecimal extendF4;

    @ApiModelProperty(value = "扩展 Date 1")
    private LocalDateTime extendD1;

    @ApiModelProperty(value = "扩展 Date 2")
    private LocalDateTime extendD2;

    @ApiModelProperty(value = "扩展 Date 3")
    private LocalDateTime extendD3;

    @ApiModelProperty(value = "扩展 Date 4")
    private LocalDateTime extendD4;
}
